package com.design.patterns.behavioralModel.builder;

import com.design.patterns.behavioralModel.builder.bean.User;

/**
 * 生成器模式或者称之为建造者模式
 * 目的：将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示。
 * 顾名思义时用来创建对象用的
 * 常用在javaBean的创建
 * 我们现在用创建user实体来做例子
 */
public class BuilderMain {
    public static void main(String[] args) {
        /**
         * 生成器模式
         */
        User user = new User();
        user.setName("Laia");
        user.setNickName("LaiaA");
        user.setPassword("123456");
        user.setAge(18);
        System.out.println(user.toString());
        /**
         * 当然我们也可以使用lombok插件去自动生成,只需要使用注解@Data
         * 也可以使用@Builder，来生成链式调用,这里我们不做解释
         * 我们手写一个链式调用的UserBuilder实体类
         * 来看看@Builder内部是怎么做的
         */
        User user1 = User.builder().name("laiabu").nickName("laiabut").age(12).password("123789").build();
        System.out.println(user1.toString());
    }
}
